// 接口

interface person {
    name: string,
    age: number,
    hobby: string,
    girlFriend?: boolean,  // 使用?: 判断，就表示可传可不传了
    readonly id: number   //该条属性是不会被修改了
}


function rollCall(person: person) {
    person.name = '吴彦祖' //其实我是吴彦祖哒！
    console.log('姓名：' + person.name)
    person.age = 18   //发现了吗，传进来的参数在这里是可以修改的，那么如何让它不被修改呢？  添加readonly
    console.log('年龄：' + person.age)

    console.log('爱好：' + person.hobby)
    console.log('学号：' + person.id)
    let falg = person.girlFriend ? '有' : '没有'
    console.log('有没有女朋友？' + falg)
}


rollCall({
    name: '小徐',
    age: 25,
    hobby: '编程',
    id: 2021
})


/**
 *  readonly vs const
 *  最简单判断该用readonly还是const的方法是看要把它做为变量使用还是做为一个属性。 做为变量使用的话用 const，若做为属性
 *  则使用readonly。
*/

